﻿using System;

namespace FluentlyXml.Core.DSL
{
	public interface IPropertySerializationSpec<T>
	{
		/// <summary> </summary>
		IPropertyOrTypeSerializationSpec<T> AsAttribute();

		IPropertyOrTypeSerializationSpec<T> AsElement();
		IPropertyOrTypeSerializationSpec<T> AsElement(string elementName);

		/// <summary> </summary>
		IPropertyOrTypeSerializationSpec<T> AsArray();

		IPropertyOrTypeSerializationSpec<T> Named(string name);
		IPropertyOrTypeSerializationSpec<T> SerializeIf(Func<T, bool> selector);
	}
}